Skip to content

feat(ui5): Add UI Integration Cards Guidelines as Skills#51

Open
dimovpetar wants to merge 13 commits into
UI5:mainfrom
dimovpetar:feat/integration-cards-skill
Open

feat(ui5): Add UI Integration Cards Guidelines as Skills#51
dimovpetar wants to merge 13 commits into
UI5:mainfrom
dimovpetar:feat/integration-cards-skill

Conversation

@dimovpetar
Copy link
Copy Markdown
Member

@dimovpetar dimovpetar commented May 14, 2026

Adding skills for UI Integration Cards development.

Heavily inspired by https://github.com/UI5/mcp-server/blob/main/resources/integration_cards_guidelines.md.

JIRA: BGSOFUIRODOPI-3670

@flovogt flovogt changed the title feat(ui5): Add integration cards skill feat(ui5): Add UI Integration Cards skill May 14, 2026
d3xter666 added a commit that referenced this pull request May 15, 2026
Remove duplicate integration cards skill that is already provided by the
MCP-based ui5 plugin (PR #51). This change eliminates duplication between
the two plugin architectures and focuses the ui5-guidelines plugin on
coding standards and TypeScript conversion.

Changes:
- Delete skills/ui5-integration-cards/ directory and all reference files
- Update .claude-plugin/plugin.json to list only 2 skills
- Remove 15 integration cards test cases from test-cases.ts
- Update provider detectSkill() methods to remove integration cards patterns
- Update cross-provider tests to use only remaining test cases
- Remove integration cards sections from README.md and TESTING.md
- Update test counts: 47 → 32 test cases per provider
- Update triggering tests to reflect only 2 skills
- All tests passing: 53/53 (100%)
Copy link
Copy Markdown
Member

@d3xter666 d3xter666 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The skill file seems quite big and will overload the context of the agent.

Try running an agent harness optimizer, so that it will optimize the skill and create reference files, making the main skill file more concise

d3xter666 added a commit that referenced this pull request May 15, 2026
…ingle skill

Remove duplicate skills already provided by dedicated plugins in the repository:
- ui5-typescript-expert (redundant with ui5-typescript-conversion plugin)
- ui5-integration-cards (redundant with ui5 MCP plugin, PR #51)

This change consolidates ui5-guidelines to focus exclusively on UI5 best practices
and coding standards, eliminating duplication across the plugin ecosystem.

Repository plugin analysis:
- ui5 (MCP) - Tools for project creation, linting, API docs, Integration Cards
- ui5-typescript-conversion - Dedicated TypeScript conversion (791 lines)
- ui5-guidelines - NOW: Best practices only (was: 3 skills, now: 1 skill)

Changes:
- Delete skills/ui5-typescript-expert/ directory and all reference files (6 files)
- Update .claude-plugin/plugin.json to list only ui5-best-practices
- Remove description references to TypeScript and Integration Cards
- Remove 12 TypeScript test cases from test-cases.ts (IDs 16-27)
- Remove 9 TypeScript triggering tests from trigger-cases.json
- Update provider detectSkill() to focus on best-practices patterns
- Update cross-provider tests to use only remaining test cases
- Update README.md with TypeScript conversion plugin reference
- Update TESTING.md test counts: 32 → 20 test cases per provider
- Update documentation with accurate test counts and coverage
- All tests passing: 38/38 (100%)

Test results:
- Structure: 10/10 passing (100%)
- Triggering: 26/26 passing (100%)
- Performance: 2/2 passing (100%)

Plugin now focused on single responsibility: UI5 best practices and coding standards.
For TypeScript conversion, users should install ui5-typescript-conversion plugin.
For Integration Cards, users should use ui5 MCP plugin.
d3xter666 added a commit that referenced this pull request May 15, 2026
Remove duplicate integration cards skill that is already provided by the
MCP-based ui5 plugin (PR #51). This change eliminates duplication between
the two plugin architectures and focuses the ui5-guidelines plugin on
coding standards and TypeScript conversion.

Changes:
- Delete skills/ui5-integration-cards/ directory and all reference files
- Update .claude-plugin/plugin.json to list only 2 skills
- Remove 15 integration cards test cases from test-cases.ts
- Update provider detectSkill() methods to remove integration cards patterns
- Update cross-provider tests to use only remaining test cases
- Remove integration cards sections from README.md and TESTING.md
- Update test counts: 47 → 32 test cases per provider
- Update triggering tests to reflect only 2 skills
- All tests passing: 53/53 (100%)
d3xter666 added a commit that referenced this pull request May 15, 2026
…ingle skill

Remove duplicate skills already provided by dedicated plugins in the repository:
- ui5-typescript-expert (redundant with ui5-typescript-conversion plugin)
- ui5-integration-cards (redundant with ui5 MCP plugin, PR #51)

This change consolidates ui5-guidelines to focus exclusively on UI5 best practices
and coding standards, eliminating duplication across the plugin ecosystem.

Repository plugin analysis:
- ui5 (MCP) - Tools for project creation, linting, API docs, Integration Cards
- ui5-typescript-conversion - Dedicated TypeScript conversion (791 lines)
- ui5-guidelines - NOW: Best practices only (was: 3 skills, now: 1 skill)

Changes:
- Delete skills/ui5-typescript-expert/ directory and all reference files (6 files)
- Update .claude-plugin/plugin.json to list only ui5-best-practices
- Remove description references to TypeScript and Integration Cards
- Remove 12 TypeScript test cases from test-cases.ts (IDs 16-27)
- Remove 9 TypeScript triggering tests from trigger-cases.json
- Update provider detectSkill() to focus on best-practices patterns
- Update cross-provider tests to use only remaining test cases
- Update README.md with TypeScript conversion plugin reference
- Update TESTING.md test counts: 32 → 20 test cases per provider
- Update documentation with accurate test counts and coverage
- All tests passing: 38/38 (100%)

Test results:
- Structure: 10/10 passing (100%)
- Triggering: 26/26 passing (100%)
- Performance: 2/2 passing (100%)

Plugin now focused on single responsibility: UI5 best practices and coding standards.
For TypeScript conversion, users should install ui5-typescript-conversion plugin.
For Integration Cards, users should use ui5 MCP plugin.
d3xter666 added a commit that referenced this pull request May 18, 2026
Remove duplicate integration cards skill that is already provided by the
MCP-based ui5 plugin (PR #51). This change eliminates duplication between
the two plugin architectures and focuses the ui5-guidelines plugin on
coding standards and TypeScript conversion.

Changes:
- Delete skills/ui5-integration-cards/ directory and all reference files
- Update .claude-plugin/plugin.json to list only 2 skills
- Remove 15 integration cards test cases from test-cases.ts
- Update provider detectSkill() methods to remove integration cards patterns
- Update cross-provider tests to use only remaining test cases
- Remove integration cards sections from README.md and TESTING.md
- Update test counts: 47 → 32 test cases per provider
- Update triggering tests to reflect only 2 skills
- All tests passing: 53/53 (100%)
d3xter666 added a commit that referenced this pull request May 18, 2026
…ingle skill

Remove duplicate skills already provided by dedicated plugins in the repository:
- ui5-typescript-expert (redundant with ui5-typescript-conversion plugin)
- ui5-integration-cards (redundant with ui5 MCP plugin, PR #51)

This change consolidates ui5-guidelines to focus exclusively on UI5 best practices
and coding standards, eliminating duplication across the plugin ecosystem.

Repository plugin analysis:
- ui5 (MCP) - Tools for project creation, linting, API docs, Integration Cards
- ui5-typescript-conversion - Dedicated TypeScript conversion (791 lines)
- ui5-guidelines - NOW: Best practices only (was: 3 skills, now: 1 skill)

Changes:
- Delete skills/ui5-typescript-expert/ directory and all reference files (6 files)
- Update .claude-plugin/plugin.json to list only ui5-best-practices
- Remove description references to TypeScript and Integration Cards
- Remove 12 TypeScript test cases from test-cases.ts (IDs 16-27)
- Remove 9 TypeScript triggering tests from trigger-cases.json
- Update provider detectSkill() to focus on best-practices patterns
- Update cross-provider tests to use only remaining test cases
- Update README.md with TypeScript conversion plugin reference
- Update TESTING.md test counts: 32 → 20 test cases per provider
- Update documentation with accurate test counts and coverage
- All tests passing: 38/38 (100%)

Test results:
- Structure: 10/10 passing (100%)
- Triggering: 26/26 passing (100%)
- Performance: 2/2 passing (100%)

Plugin now focused on single responsibility: UI5 best practices and coding standards.
For TypeScript conversion, users should install ui5-typescript-conversion plugin.
For Integration Cards, users should use ui5 MCP plugin.
@dimovpetar dimovpetar marked this pull request as draft May 18, 2026 06:53
d3xter666 added a commit that referenced this pull request May 18, 2026
Remove duplicate integration cards skill that is already provided by the
MCP-based ui5 plugin (PR #51). This change eliminates duplication between
the two plugin architectures and focuses the ui5-guidelines plugin on
coding standards and TypeScript conversion.

Changes:
- Delete skills/ui5-integration-cards/ directory and all reference files
- Update .claude-plugin/plugin.json to list only 2 skills
- Remove 15 integration cards test cases from test-cases.ts
- Update provider detectSkill() methods to remove integration cards patterns
- Update cross-provider tests to use only remaining test cases
- Remove integration cards sections from README.md and TESTING.md
- Update test counts: 47 → 32 test cases per provider
- Update triggering tests to reflect only 2 skills
- All tests passing: 53/53 (100%)
d3xter666 added a commit that referenced this pull request May 18, 2026
…ingle skill

Remove duplicate skills already provided by dedicated plugins in the repository:
- ui5-typescript-expert (redundant with ui5-typescript-conversion plugin)
- ui5-integration-cards (redundant with ui5 MCP plugin, PR #51)

This change consolidates ui5-guidelines to focus exclusively on UI5 best practices
and coding standards, eliminating duplication across the plugin ecosystem.

Repository plugin analysis:
- ui5 (MCP) - Tools for project creation, linting, API docs, Integration Cards
- ui5-typescript-conversion - Dedicated TypeScript conversion (791 lines)
- ui5-guidelines - NOW: Best practices only (was: 3 skills, now: 1 skill)

Changes:
- Delete skills/ui5-typescript-expert/ directory and all reference files (6 files)
- Update .claude-plugin/plugin.json to list only ui5-best-practices
- Remove description references to TypeScript and Integration Cards
- Remove 12 TypeScript test cases from test-cases.ts (IDs 16-27)
- Remove 9 TypeScript triggering tests from trigger-cases.json
- Update provider detectSkill() to focus on best-practices patterns
- Update cross-provider tests to use only remaining test cases
- Update README.md with TypeScript conversion plugin reference
- Update TESTING.md test counts: 32 → 20 test cases per provider
- Update documentation with accurate test counts and coverage
- All tests passing: 38/38 (100%)

Test results:
- Structure: 10/10 passing (100%)
- Triggering: 26/26 passing (100%)
- Performance: 2/2 passing (100%)

Plugin now focused on single responsibility: UI5 best practices and coding standards.
For TypeScript conversion, users should install ui5-typescript-conversion plugin.
For Integration Cards, users should use ui5 MCP plugin.
d3xter666 added a commit that referenced this pull request May 18, 2026
Remove duplicate integration cards skill that is already provided by the
MCP-based ui5 plugin (PR #51). This change eliminates duplication between
the two plugin architectures and focuses the ui5-guidelines plugin on
coding standards and TypeScript conversion.

Changes:
- Delete skills/ui5-integration-cards/ directory and all reference files
- Update .claude-plugin/plugin.json to list only 2 skills
- Remove 15 integration cards test cases from test-cases.ts
- Update provider detectSkill() methods to remove integration cards patterns
- Update cross-provider tests to use only remaining test cases
- Remove integration cards sections from README.md and TESTING.md
- Update test counts: 47 → 32 test cases per provider
- Update triggering tests to reflect only 2 skills
- All tests passing: 53/53 (100%)
d3xter666 added a commit that referenced this pull request May 18, 2026
…ingle skill

Remove duplicate skills already provided by dedicated plugins in the repository:
- ui5-typescript-expert (redundant with ui5-typescript-conversion plugin)
- ui5-integration-cards (redundant with ui5 MCP plugin, PR #51)

This change consolidates ui5-guidelines to focus exclusively on UI5 best practices
and coding standards, eliminating duplication across the plugin ecosystem.

Repository plugin analysis:
- ui5 (MCP) - Tools for project creation, linting, API docs, Integration Cards
- ui5-typescript-conversion - Dedicated TypeScript conversion (791 lines)
- ui5-guidelines - NOW: Best practices only (was: 3 skills, now: 1 skill)

Changes:
- Delete skills/ui5-typescript-expert/ directory and all reference files (6 files)
- Update .claude-plugin/plugin.json to list only ui5-best-practices
- Remove description references to TypeScript and Integration Cards
- Remove 12 TypeScript test cases from test-cases.ts (IDs 16-27)
- Remove 9 TypeScript triggering tests from trigger-cases.json
- Update provider detectSkill() to focus on best-practices patterns
- Update cross-provider tests to use only remaining test cases
- Update README.md with TypeScript conversion plugin reference
- Update TESTING.md test counts: 32 → 20 test cases per provider
- Update documentation with accurate test counts and coverage
- All tests passing: 38/38 (100%)

Test results:
- Structure: 10/10 passing (100%)
- Triggering: 26/26 passing (100%)
- Performance: 2/2 passing (100%)

Plugin now focused on single responsibility: UI5 best practices and coding standards.
For TypeScript conversion, users should install ui5-typescript-conversion plugin.
For Integration Cards, users should use ui5 MCP plugin.
@dimovpetar dimovpetar force-pushed the feat/integration-cards-skill branch from 4ec4ad4 to e225737 Compare May 18, 2026 07:17
@dimovpetar dimovpetar marked this pull request as ready for review May 18, 2026 10:30
@dimovpetar dimovpetar requested a review from d3xter666 May 18, 2026 10:32
@d3xter666 d3xter666 requested a review from a team May 18, 2026 10:56
Copy link
Copy Markdown
Member

@RandomByte RandomByte left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Comment thread plugins/ui5/skills/integration-cards/SKILL.md Outdated
Comment thread plugins/ui5/skills/integration-cards/SKILL.md Outdated
Comment thread plugins/ui5/skills/integration-cards/SKILL.md Outdated
Comment thread plugins/ui5/skills/integration-cards/SKILL.md Outdated
Comment thread plugins/ui5/skills/integration-cards/references/configuration_editor_example.md Outdated
Editor field referenced parameters/CustomerID/value but the manifest
declared "Customers" as an array, so the binding never matched. Use a
singular "Customer" string key in both places.
Comment thread plugins/ui5/skills/integration-cards/SKILL.md Outdated
@flovogt flovogt changed the title feat(ui5): Add UI Integration Cards skill feat(ui5): Add UI Integration Cards Guidelines as Skills May 19, 2026
- Fix analytical chart samples (bubble, time_bubble, stacked variants,
  bullet, waterfall, combinations) so feeds and measures match each
  chart type's requirements
- Add GitHub samples link to the Card Explorer section
- Require asking the user before making all manifest fields editable
  in the Configuration Editor
- Clarify the donut/pie context on the feeds example in SKILL.md
Lead the skill description with the same imperative the UI5 MCP
server's "Get Integration Cards Guidelines" tool uses, and enumerate
the trigger surfaces (manifest.json, Configuration Editor, analytical
charts), so Claude prefers loading the skill over calling the MCP
tool.
…mple

The manifest defines header.icon.src as {parameters>/icon/value}, so the
editor should bind to the parameter path instead of the header path.
Otherwise the editor writes to a different manifest location than the
binding reads from.
Reduce word count from ~1058 to ~740 by restructuring prose into compact
rules tables. Hoist reference-loading triggers to the top so agents load
analytical_chart_types.md and configuration_editor_example.md before
working on those areas. Replace section symbols with markdown anchor
links, demote the Card Explorer reference to the bottom, and add a
"No data to display" symptom callout pointing at the data-placement
rule (the most common cause).
@dimovpetar dimovpetar force-pushed the feat/integration-cards-skill branch from 23b7ecf to c34d265 Compare May 20, 2026 11:22
Copy link
Copy Markdown
Member

@alexandar-mitsev alexandar-mitsev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Fix the iconShape/iconBackground inconsistency in the Configuration Editor example (violates the stated "no invented fields" rule).
  2. Fix the missing color feed in timeseries_stacked_column (#11) and timeseries_100_stacked_column (#14) examples.
  3. Consider adding one sentence to Section 5 clarifying that manifestpath can reference direct manifest paths, not only configuration parameters.

Comment thread plugins/ui5/skills/integration-cards/SKILL.md
- Document that manifestpath can target any manifest path, not only
  configuration parameters, in the "Mirror the manifest" rule
- Add color-feed Note and second dimension to timeseries_stacked_column
  and timeseries_100_stacked_column examples; without a color dimension
  these chart types render as plain timeseries_column
- Fix indentation of the data block in the Configuration Editor example
  and add the missing header.icon.backgroundColor that the editor's
  iconBackground field references
- Use American English spelling (customize, colors)
List the high-level capabilities the skill covers — declarative card
types, binding syntax, data placement, validation, preview, the
Configuration Editor, the Analytical cards catalog, and i18n/actions —
matching the style of the ui5-best-practices entry.
The card's data layer parses JSON only — XML, CSV, and other response
types fail silently or render no data. Note the OData $format=json
workaround for services that default to XML.
Comment thread plugins/ui5/README.md Outdated
Comment thread plugins/ui5/README.md
Comment thread plugins/ui5/README.md Outdated
Comment thread plugins/ui5/README.md Outdated
Comment thread plugins/ui5/skills/integration-cards/SKILL.md
Add a Core rule next to the destination-binding-syntax row so agents
default to declaring a destination per external endpoint instead of
inlining raw URLs in the manifest.
Split i18n and actions into separate bullets, add a "Building a card"
entry covering the manifest structure, and rephrase the data-related
bullet to cover placement, destinations, and the JSON-only response
requirement together.
d3xter666 added a commit that referenced this pull request May 22, 2026
Remove duplicate integration cards skill that is already provided by the
MCP-based ui5 plugin (PR #51). This change eliminates duplication between
the two plugin architectures and focuses the ui5-guidelines plugin on
coding standards and TypeScript conversion.

Changes:
- Delete skills/ui5-integration-cards/ directory and all reference files
- Update .claude-plugin/plugin.json to list only 2 skills
- Remove 15 integration cards test cases from test-cases.ts
- Update provider detectSkill() methods to remove integration cards patterns
- Update cross-provider tests to use only remaining test cases
- Remove integration cards sections from README.md and TESTING.md
- Update test counts: 47 → 32 test cases per provider
- Update triggering tests to reflect only 2 skills
- All tests passing: 53/53 (100%)
d3xter666 added a commit that referenced this pull request May 22, 2026
…ingle skill

Remove duplicate skills already provided by dedicated plugins in the repository:
- ui5-typescript-expert (redundant with ui5-typescript-conversion plugin)
- ui5-integration-cards (redundant with ui5 MCP plugin, PR #51)

This change consolidates ui5-guidelines to focus exclusively on UI5 best practices
and coding standards, eliminating duplication across the plugin ecosystem.

Repository plugin analysis:
- ui5 (MCP) - Tools for project creation, linting, API docs, Integration Cards
- ui5-typescript-conversion - Dedicated TypeScript conversion (791 lines)
- ui5-guidelines - NOW: Best practices only (was: 3 skills, now: 1 skill)

Changes:
- Delete skills/ui5-typescript-expert/ directory and all reference files (6 files)
- Update .claude-plugin/plugin.json to list only ui5-best-practices
- Remove description references to TypeScript and Integration Cards
- Remove 12 TypeScript test cases from test-cases.ts (IDs 16-27)
- Remove 9 TypeScript triggering tests from trigger-cases.json
- Update provider detectSkill() to focus on best-practices patterns
- Update cross-provider tests to use only remaining test cases
- Update README.md with TypeScript conversion plugin reference
- Update TESTING.md test counts: 32 → 20 test cases per provider
- Update documentation with accurate test counts and coverage
- All tests passing: 38/38 (100%)

Test results:
- Structure: 10/10 passing (100%)
- Triggering: 26/26 passing (100%)
- Performance: 2/2 passing (100%)

Plugin now focused on single responsibility: UI5 best practices and coding standards.
For TypeScript conversion, users should install ui5-typescript-conversion plugin.
For Integration Cards, users should use ui5 MCP plugin.
d3xter666 added a commit that referenced this pull request May 22, 2026
Remove duplicate integration cards skill that is already provided by the
MCP-based ui5 plugin (PR #51). This change eliminates duplication between
the two plugin architectures and focuses the ui5-guidelines plugin on
coding standards and TypeScript conversion.

Changes:
- Delete skills/ui5-integration-cards/ directory and all reference files
- Update .claude-plugin/plugin.json to list only 2 skills
- Remove 15 integration cards test cases from test-cases.ts
- Update provider detectSkill() methods to remove integration cards patterns
- Update cross-provider tests to use only remaining test cases
- Remove integration cards sections from README.md and TESTING.md
- Update test counts: 47 → 32 test cases per provider
- Update triggering tests to reflect only 2 skills
- All tests passing: 53/53 (100%)
d3xter666 added a commit that referenced this pull request May 22, 2026
…ingle skill

Remove duplicate skills already provided by dedicated plugins in the repository:
- ui5-typescript-expert (redundant with ui5-typescript-conversion plugin)
- ui5-integration-cards (redundant with ui5 MCP plugin, PR #51)

This change consolidates ui5-guidelines to focus exclusively on UI5 best practices
and coding standards, eliminating duplication across the plugin ecosystem.

Repository plugin analysis:
- ui5 (MCP) - Tools for project creation, linting, API docs, Integration Cards
- ui5-typescript-conversion - Dedicated TypeScript conversion (791 lines)
- ui5-guidelines - NOW: Best practices only (was: 3 skills, now: 1 skill)

Changes:
- Delete skills/ui5-typescript-expert/ directory and all reference files (6 files)
- Update .claude-plugin/plugin.json to list only ui5-best-practices
- Remove description references to TypeScript and Integration Cards
- Remove 12 TypeScript test cases from test-cases.ts (IDs 16-27)
- Remove 9 TypeScript triggering tests from trigger-cases.json
- Update provider detectSkill() to focus on best-practices patterns
- Update cross-provider tests to use only remaining test cases
- Update README.md with TypeScript conversion plugin reference
- Update TESTING.md test counts: 32 → 20 test cases per provider
- Update documentation with accurate test counts and coverage
- All tests passing: 38/38 (100%)

Test results:
- Structure: 10/10 passing (100%)
- Triggering: 26/26 passing (100%)
- Performance: 2/2 passing (100%)

Plugin now focused on single responsibility: UI5 best practices and coding standards.
For TypeScript conversion, users should install ui5-typescript-conversion plugin.
For Integration Cards, users should use ui5 MCP plugin.
@@ -0,0 +1,105 @@
---
name: integration-cards
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dimovpetar @alexandar-mitsev please name the skill ``

Suggested change
name: integration-cards
name: ui5-best-practices-integration-cards

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please consider also the folder name of the skill

Comment thread plugins/ui5/README.md
- Supports the developer to detect and fix UI5-specific errors
- Provides additional UI5-specific information for Claude Code

### 📋 Skills: integration-cards
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### 📋 Skills: integration-cards
### 📋 Skills: ui5-best-practices-integration-cards

description: MUST be loaded before any UI Integration Cards (also called UI5 Integration Cards) task — creating, modifying, validating, previewing, or reviewing a card, its `manifest.json`, its Configuration Editor (`dt/Configuration.js`), or any analytical chart configuration. Provides the official guidelines, validation rules, supported chart types, and Configuration Editor patterns.
---

# UI Integration Cards Development Guidelines
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# UI Integration Cards Development Guidelines
# Best practices for UI Integration Cards development

d3xter666 added a commit that referenced this pull request May 22, 2026
* feat(ui5-guidelines): Add consolidated testing and metrics system

- Created single test framework (test/lib/test-framework.js) consolidating:
  - Structure validation (plugin.json, SKILL.md frontmatter, links)
  - Triggering tests (keyword matching, accuracy metrics)
  - Performance checks (context budget, skill sizing)

- Replaced test-plugin.sh with wrapper calling unified test runner
- Added test suites: structure, triggering, performance
- Initial test results: 26 passed, 7 warnings, 6 failed (81.3% triggering accuracy)

- Created unified analytics script (scripts/analyze.js) replacing multiple tools:
  - Metrics dashboard (skill invocations, token usage, costs)
  - Cost optimization recommendations
  - Time-window filtering (7/30 days)

- Implemented telemetry system (test/lib/telemetry.js):
  - Tracks skill usage, context size, sessions
  - Stores metrics in .metrics/usage.jsonl (gitignored)

Added to package.json:
- test:ui5-guidelines - Run all plugin tests
- test:ui5-guidelines:structure/triggering/performance - Specific suites
- metrics/metrics:week/metrics:month/metrics:optimize - Analytics

- Updated .github/workflows/ci.yml to run plugin tests automatically
- Tests run on push to main and PRs

- TESTING.md - Comprehensive testing guide
- IMPLEMENTATION_PLAN.md - 3-phase roadmap (Phase 1 complete)
- QUICK_START_TESTING.md - Quick reference
- Updated OPTIMIZATION_NOTES.md with testing infrastructure

- test/fixtures/trigger-cases.json - 16 triggering test cases
- test/evals/skill-evals.json - 8 manual evaluation references

✅ Eliminates collision between multiple test systems
✅ Single entry point for tests and analytics
✅ Consistent API and reporting
✅ Clear documentation hierarchy
✅ Automated CI/CD validation

Breaking Changes: None (backward compatible)

Related: #harness-audit recommendations

* feat(ui5-guidelines): Phase 2.1 - improve triggering and extract TypeScript references

## Triggering Accuracy: 81.3% → 100% ✅

### Skill Description Updates
- ui5-best-practices: Added missing keywords (version detection, VersionInfo, IAsyncContentCreation, XML event models)
- ui5-typescript-expert: Added ts-interface-generator setup keywords, TypeScript tooling terms

### Improved Matching Logic
- Added UI5 context detection (direct terms + contextual terms)
- Added anti-pattern filtering (React, Python, Express, etc.)
- Fixed test logic for should_trigger: false cases
- All 16 trigger tests now passing (100% accuracy)

## TypeScript Skill Optimization: 1,078 → 929 lines

### References Extracted
Created `skills/ui5-typescript-expert/references/`:
1. control-library-conversion.md (112 lines)
   - Enum attachment patterns (XSS prevention)
   - Path mapping
   - Library structure

2. test-conversion-guide.md (275 lines)
   - QUnit → TypeScript
   - OPA5 class-based patterns (NO Given/When/Then)
   - Code coverage setup
   - Test Starter patterns

3. conversion-checklist.md (196 lines)
   - Complete validation checklist
   - Version-specific features
   - Troubleshooting guide

### Main Skill Updated
- Replaced detailed sections with summaries
- Added clear pointers to reference files
- Maintained critical information in main file
- Total references: 583 lines (on-demand loading)

## Test Results

Triggering Tests: 16/16 (100.0%) ✅
Performance Tests:
- ui5-typescript-expert: 1,078 → 929 lines (149-line reduction)
- Total main context: 2,922 → 2,773 lines (149-line reduction)

## Next Steps (Phase 2.2)

- Extract Integration Cards references (980 → 650 lines target)
- Add 15+ more trigger test cases
- Create sample metrics data
- Update documentation for v2.1.0

Related: #IMPLEMENTATION_PLAN Phase 2

* feat(ui5-guidelines): Phase 2.2 - extract Integration Cards references

## Integration Cards Optimization: 979 → 805 lines ✅

### References Extracted
Created `skills/ui5-integration-cards/references/`:
1. configuration-editor-advanced.md (236 lines)
   - Full Configuration Editor guide
   - Persona design (Administrator focus)
   - Manifest synchronization rules
   - Field types and validation

2. troubleshooting-guide.md (50 lines)
   - Detailed troubleshooting scenarios
   - Root cause analysis
   - Resolution steps

### Main Skill Updated
- Replaced Section 5 (Configuration Editor) with summary + link
- Replaced Section 8 (Troubleshooting) with quick reference + link
- Total reduction: 174 lines

## Performance Impact

- ui5-integration-cards: 979 → 805 lines (17.8% reduction)
- Total main context: 2,773 → 2,599 lines (174-line reduction)
- Total references: 467 lines (on-demand loading)

## All Skills Now Optimized

| Skill | Original | Optimized | Reduction | References |
|-------|----------|-----------|-----------|------------|
| ui5-best-practices | 862 | 862 | 0 | 0 |
| ui5-typescript-expert | 1,078 | 929 | 149 (13.8%) | 583 |
| ui5-integration-cards | 979 | 805 | 174 (17.8%) | 467 |
| **Total Main** | **2,919** | **2,596** | **323 (11.1%)** | **1,050** |

Related: #IMPLEMENTATION_PLAN Phase 2

* feat(ui5-guidelines): Phase 2.3 - refactor test framework to TypeScript ESM

## Test Framework: JavaScript → TypeScript ESM ✅

### Conversion Complete
- All test files converted to TypeScript with ESM modules
- Type-safe test framework with proper interfaces
- Build pipeline with tsc (TypeScript compiler)
- Source maps and declaration files generated

### Key Improvements

**KISS Principles Applied**:
- Simplified test framework API (single class, clear methods)
- Removed duplication in test suites
- Clean separation of concerns (types, framework, suites)
- Consistent error handling throughout

**DRY Principles Applied**:
- Shared types in `test/types.ts`
- Reusable test framework methods
- No code duplication across suites

### Files Structure

```
test/
├── types.ts                      # Shared type definitions
├── index.ts                      # Main test runner (ESM)
├── lib/
│   └── test-framework.ts         # Core framework (type-safe)
├── suites/
│   ├── structure.test.ts         # Structure validation
│   ├── triggering.test.ts        # Triggering accuracy
│   └── performance.test.ts       # Performance checks
├── fixtures/
│   └── trigger-cases.json        # Test cases
└── evals/
    └── skill-evals.json          # Manual eval references
```

### Build System

**package.json**:
- `npm run build` - Compile TypeScript
- `npm test` - Build + run tests
- `npm run test:structure` - Structure tests only
- `npm run test:triggering` - Triggering tests only
- `npm run test:performance` - Performance tests only

**tsconfig.json**:
- Target: ES2022
- Module: ES2022 (native ESM)
- Strict mode enabled
- Source maps + declarations

### Test Results

All tests passing:
```
✅ Passed: 31
⚠️  Warnings: 7
❌ Failed: 1 (ui5-typescript-expert at 930 lines, close to 900 target)

Triggering Accuracy: 100% (16/16)
Total Main Context: 2,599 lines
```

### Benefits

1. **Type Safety**: Catch errors at compile time
2. **Better IDE Support**: IntelliSense, refactoring, navigation
3. **Modern ESM**: Native module imports, no CommonJS quirks
4. **Maintainability**: Clear types, easier to extend
5. **Documentation**: Types serve as inline documentation

### Backward Compatibility

- `test-plugin.sh` wrapper updated (calls `npm test`)
- CI/CD integration maintained
- All existing test cases preserved

Related: #IMPLEMENTATION_PLAN Phase 2

* feat(ui5-guidelines): Phase 2.4 - expand test coverage and add sample metrics

## Test Coverage Expansion: 16 → 34 test cases ✅

### New Trigger Test Cases (18 added)
- **Best Practices**: Test Starter, XML event models, Component metadata, minUI5Version
- **TypeScript**: OPA5 conversion, MetadataOptions, enum attachment, ui5-tooling-transpile
- **Integration Cards**: Table/List/Calendar/Timeline/Object cards, destinations, measures/dimensions
- **Negative Cases**: Vue.js, Django, Angular (anti-patterns)

### Triggering Accuracy Improvements
- Enhanced matching logic with phrase-specific scoring
- Added context terms: card types, OPA5, MetadataOptions, minUI5Version
- Improved keyword weighting (keywords: 3, exact phrases: 10, overlap: 0.2)
- **Result**: 97.1% accuracy (33/34 tests passing)

### Sample Metrics System ✅

Created complete testing infrastructure for analytics:

**sample-metrics.jsonl** (23 entries):
- 10-day period (May 1-11, 2026)
- Realistic invocation patterns
- All 3 skills represented
- 20 unique sessions
- Estimated tokens per skill

**seed-metrics.ts** script:
- Copies sample data to .metrics/usage.jsonl
- Creates .metrics directory automatically
- Enables testing without real usage data

**New npm scripts**:
```bash
npm run seed-metrics       # Load sample data
npm run metrics:week       # Last 7 days
npm run metrics:month      # Last 30 days
npm run metrics:optimize   # With recommendations
```

## Test Results

### Final Metrics
- **Trigger Tests**: 34 total, 33 passing (97.1%)
- **Total Test Coverage**: Structure + Triggering + Performance
- **Type Safety**: Full TypeScript with strict mode

### Sample Analytics Output
When seeded with sample data:
- ui5-best-practices: 9 invocations, ~31k tokens
- ui5-typescript-expert: 8 invocations, ~30k tokens
- ui5-integration-cards: 6 invocations, ~19k tokens
- **Total**: 23 invocations, ~80k tokens, $0.24 estimated cost

Related: #IMPLEMENTATION_PLAN Phase 2

* docs(ui5-guidelines): Update documentation for v2.1.0 release

Phase 2.3 - Documentation completion

Updated files:
- plugin.json: Version bump 2.0.0 → 2.1.0
- CHANGELOG.md: Added complete v2.1.0 release notes
  - TypeScript ESM conversion details
  - Test coverage expansion (16 → 34 cases, 81.3% → 97.1% accuracy)
  - Context optimization (-323 lines, -11.1%)
  - Sample metrics system
  - Technical specifications
- OPTIMIZATION_NOTES.md: Added v2.1.0 metrics and Phase 2 summary
- README.md: Updated version, key features, testing section

Phase 2 complete:
✅ Triggering accuracy: 81.3% → 97.1%
✅ TypeScript ESM: Full conversion with strict mode
✅ Context optimization: -323 lines (-11.1%)
✅ Test coverage: 16 → 34 cases
✅ Sample metrics: 23 entries for analytics testing
✅ All skills under 930 lines

* refactor(test): Phase 1 - High priority fixes from code review

Fix 1: Replace fragile regex-based YAML parsing with robust parser
- Added yaml library dependency (npm i yaml)
- Updated loadSkillMetadata() to use parseYaml()
- Handles all valid YAML syntax (multiline, folded, etc.)
- Fixes case-sensitivity issues (keywords vs Keywords)

Fix 2: Extract hardcoded matching logic to data-driven config
- Created test/config/matching-config.json with weights and patterns
- Created test/config/matching-config.ts loader with type safety
- Configurable weights: keywordMatch (3), exactPhrase (10), wordOverlap (0.2)
- Separated data (ui5Terms, antiPatterns, exactPhrases) from logic
- Enables easy A/B testing and tuning without code changes

Fix 3: Eliminate duplication in test framework
- Extracted recordResult() and recordError() private methods
- Reduced test/testAsync from 95% identical to shared logic
- Test framework: 179 → ~150 lines (-16%)
- Improved DRY compliance

Build system:
- Updated package.json build script to copy JSON config files
- Ensures dist/ has matching-config.json and trigger-cases.json

Test results: 33/34 passing (97.1% accuracy maintained)

Code review: HIGH priority fixes completed

* refactor(skills): Phase 2.1 - Extract ui5-best-practices references

Extracted 3 largest sections to progressive disclosure references:

1. test-starter-guide.md (115 lines)
   - Modern test setup patterns (UI5 >= 1.113.0)
   - testsuite.qunit.html/js structure
   - QUnit 2+ configuration
   - Istanbul code coverage

2. csp-directive-reference.md (89 lines)
   - Complete CSP directive table
   - Library-specific requirements
   - Report-Only testing workflow
   - Compliance checklist

3. xml-event-handling-guide.md (87 lines)
   - core:require module loading
   - Parameter passing patterns
   - Special models ($parameters, $source, $event, $controller)
   - "this" context control with .call()

Main skill file:
- Before: 862 lines
- After: 663 lines
- Reduction: -199 lines (-23%)

All sections replaced with:
- Essential pattern examples
- Quick reference tables
- Links to complete guides

Tests: ✅ All structure tests passing

* refactor(skills): Phase 2.2 - Extract ui5-typescript-expert references

Extracted 3 largest sections to progressive disclosure references:

1. application-code-conversion.md (128 lines)
   - Controller ES6 class patterns
   - Component.ts with IAsyncContentCreation
   - Formatter conversion
   - Event handler typing

2. custom-control-conversion.md (222 lines)
   - MetadataOptions structure
   - Property/aggregation/association typing
   - Renderer conversion patterns
   - Event parameter types

3. version-specific-patterns.md (212 lines)
   - Runtime version detection
   - Conditional event types (>= 1.115.0)
   - IAsyncContentCreation (>= 1.90.0)
   - Test Starter TypeScript patterns

Main skill file:
- Before: 929 lines
- After: 517 lines
- Reduction: -412 lines (-44%)

All sections replaced with essential patterns and references.

Tests: ✅ All structure tests passing

* refactor(skills): Phase 2.3 - Extract ui5-integration-cards references

Extracted 3 largest sections to progressive disclosure references:

1. data-configuration-patterns.md (156 lines)
   - Primary data location rules
   - Inline JSON, network requests, destinations
   - Path overriding patterns
   - Parameter binding
   - Extension data sources

2. card-types-examples.md (111 lines)
   - Complete examples for all 6 card types
   - List, Table, Calendar, Timeline, Object
   - Manifest structure for each type

3. analytical-cards-comprehensive.md (227 lines)
   - 43+ chart types with feed UIDs
   - Measures, dimensions, feeds configuration
   - Advanced chart properties
   - VizProperties customization

Main skill file:
- Before: 805 lines
- After: 489 lines
- Reduction: -316 lines (-39%)

All sections replaced with essential patterns and quick references.

Phase 2 Complete:
- ui5-best-practices: -23% (862 → 663)
- ui5-typescript-expert: -44% (929 → 517)
- ui5-integration-cards: -39% (805 → 489)

Total context reduction: -1,339 lines (-35%)

Tests: ✅ All structure tests passing

* test: Add 12 new test cases for improved coverage

Added test cases breakdown:
- 7 negative cases (other frameworks): FastAPI, SwiftUI, Kotlin, Next.js, Laravel, Rust, Go
- 5 edge cases: Mixed framework mentions, ambiguous OData, version queries, CAP integration, comprehensive TS conversion

Test results:
- Total cases: 34 → 46 (+12, +35%)
- Passing: 45/46 (97.8%)
- Negative case coverage: 10/46 (21.7%, target 15-20% exceeded)

Edge case coverage improved:
- Mixed framework context (React → UI5 migration)
- Ambiguous technology prompts (OData types)
- Version-specific queries (1.90.0 features)
- Complex multi-technology scenarios (UI5 + CAP)

Accuracy maintained above 97% target.

Note: 1 pre-existing test case failure (XML views $parameters test)
remains from previous test suite - not introduced by new cases.

* docs: Add comprehensive code review fixes summary

Complete documentation of all fixes applied from the critical code review:

Phase 1 (HIGH priority):
- Fix 1: Fragile YAML parsing → robust yaml library
- Fix 2: Hardcoded matching → data-driven config
- Fix 3: Test duplication → DRY principles

Phase 2 (MEDIUM priority):
- Phase 2.1: ui5-best-practices -23% (3 references)
- Phase 2.2: ui5-typescript-expert -44% (3 references)
- Phase 2.3: ui5-integration-cards -39% (3 references)

Phase 3 (MEDIUM priority):
- Added 12 test cases (+35% coverage)
- 97.8% accuracy, 21.7% negative coverage

Final metrics:
- Total context reduction: -927 lines (-36%)
- Test framework: -16% LOC
- All tests passing
- No security vulnerabilities

Document includes:
- Detailed issue descriptions
- Code before/after comparisons
- File change lists
- Complete metrics
- Testing validation
- Commit history

* docs: Consolidate documentation (72% reduction)

Removed redundant and development-focused documentation, keeping only
user-facing essentials.

Deleted (7 files, 2,077 lines):
- INSTALL.md → merged into README.md
- PLUGIN_INFO.md → merged into README.md
- QUICK_START_TESTING.md → merged into TESTING.md
- OPTIMIZATION_NOTES.md → development notes, not needed
- CODE_REVIEW_FIXES.md → development notes, not needed
- IMPLEMENTATION_PLAN.md → development plan, not needed
- CONSOLIDATION_SUMMARY.md → development notes, not needed

Updated:
- README.md: Consolidated installation, usage, technical details (205 → 119 lines)
- TESTING.md: Consolidated quick start, added best practices (301 → 182 lines)
- CHANGELOG.md: Removed references to deleted files

Kept (4 files, 770 lines):
- README.md (119 lines) - Main entry point
- CHANGELOG.md (235 lines) - Version history
- TESTING.md (182 lines) - Testing & metrics guide
- QUICK_REFERENCE.md (234 lines) - Skill cheat sheet

Result:
- Before: 11 files, 2,847 lines
- After: 4 files, 770 lines
- Reduction: -2,077 lines (-72%)

All documentation is now self-contained, minimal, and user-focused.
Code is self-explanatory through types and structure.

Tests: ✅ All structure tests passing

* docs: Add comprehensive user guide and documentation summary

Added two new user-facing guides to help users get started and navigate
documentation effectively.

New files:
1. USER_GUIDE.md (230 lines)
   - Complete usage guide with examples
   - Installation walkthrough
   - How each skill works
   - Testing instructions with expected output
   - Troubleshooting common issues
   - Quick start checklist

2. DOCUMENTATION_SUMMARY.md (120 lines)
   - Overview of all documentation files
   - Reading order recommendations (new users, developers, contributors)
   - Document relationships and structure
   - Quick reference table
   - "Finding Information Fast" guide

Updated:
- README.md: Added links to new guides in Documentation section

Documentation structure now:
- README.md (entry point)
- USER_GUIDE.md (complete usage guide) ← NEW
- DOCUMENTATION_SUMMARY.md (doc overview) ← NEW
- QUICK_REFERENCE.md (code cheat sheet)
- TESTING.md (testing guide)
- CHANGELOG.md (version history)

Total: 6 files, ~1,120 lines (30 min read for everything)

Benefits:
✅ Clear entry point for new users
✅ Complete usage examples
✅ Testing instructions with expected output
✅ Troubleshooting guide
✅ Documentation navigation guide
✅ Self-contained and minimal

Tests: ✅ All structure tests passing

* feat: Consolidate docs, fix scripts, add coverage analysis

- Convert analyze.js and telemetry.js to TypeScript
- Fix build script with proper directory creation
- Consolidate documentation (4→2 files, 27% reduction)
- Add coverage analysis (85% overall)
- Update to version 1.0.0
- All 10 npm scripts validated and working

* feat: Consolidate docs, fix scripts, add coverage analysis

- Coverage analysis: 85% overall (ui5-integration-cards: 92%, ui5-typescript-expert: 85%, ui5-best-practices: 78%)
- Converted scripts/analyze.js → analyze.ts with proper ES module support
- Converted test/lib/telemetry.js → telemetry.ts with type definitions
- Fixed build script: proper directory creation and .jsonl file copying
- Consolidated documentation: README.md (432 lines) + TESTING.md (182 lines)
- Removed USER_GUIDE.md, QUICK_REFERENCE.md, DOCUMENTATION_SUMMARY.md, CHANGELOG.md
- Updated version to 1.0.0
- All 10 package.json scripts validated and working
- Tests: 64 passed, 4 warnings

* feat: Clean plugin for distribution - remove test infrastructure

- Remove all test infrastructure (test/, scripts/, TESTING.md)
- Remove build configuration (package.json, tsconfig.json, test-plugin.sh)
- Simplify README for end-user distribution
- Update installation to symlink-only (no npm required)
- Keep only skills/, .claude-plugin/, README.md, and .gitignore
- Plugin now ready for production use

* fix: Remove ui5-guidelines test references from root

- Remove test scripts from root package.json (test infrastructure moved to separate branch)
- Remove UI5 Guidelines test step from CI workflow
- Keep only general repository checks (prettier, licenses, knip)
- UI5 plugin tests now in test/ui5-skills-testing branch

* refactor: Remove ui5-integration-cards skill from ui5-guidelines plugin

Remove duplicate integration cards skill that is already provided by the
MCP-based ui5 plugin (PR #51). This change eliminates duplication between
the two plugin architectures and focuses the ui5-guidelines plugin on
coding standards and TypeScript conversion.

Changes:
- Delete skills/ui5-integration-cards/ directory and all reference files
- Update .claude-plugin/plugin.json to list only 2 skills
- Remove 15 integration cards test cases from test-cases.ts
- Update provider detectSkill() methods to remove integration cards patterns
- Update cross-provider tests to use only remaining test cases
- Remove integration cards sections from README.md and TESTING.md
- Update test counts: 47 → 32 test cases per provider
- Update triggering tests to reflect only 2 skills
- All tests passing: 53/53 (100%)

* refactor: Remove redundant skills and consolidate ui5-guidelines to single skill

Remove duplicate skills already provided by dedicated plugins in the repository:
- ui5-typescript-expert (redundant with ui5-typescript-conversion plugin)
- ui5-integration-cards (redundant with ui5 MCP plugin, PR #51)

This change consolidates ui5-guidelines to focus exclusively on UI5 best practices
and coding standards, eliminating duplication across the plugin ecosystem.

Repository plugin analysis:
- ui5 (MCP) - Tools for project creation, linting, API docs, Integration Cards
- ui5-typescript-conversion - Dedicated TypeScript conversion (791 lines)
- ui5-guidelines - NOW: Best practices only (was: 3 skills, now: 1 skill)

Changes:
- Delete skills/ui5-typescript-expert/ directory and all reference files (6 files)
- Update .claude-plugin/plugin.json to list only ui5-best-practices
- Remove description references to TypeScript and Integration Cards
- Remove 12 TypeScript test cases from test-cases.ts (IDs 16-27)
- Remove 9 TypeScript triggering tests from trigger-cases.json
- Update provider detectSkill() to focus on best-practices patterns
- Update cross-provider tests to use only remaining test cases
- Update README.md with TypeScript conversion plugin reference
- Update TESTING.md test counts: 32 → 20 test cases per provider
- Update documentation with accurate test counts and coverage
- All tests passing: 38/38 (100%)

Test results:
- Structure: 10/10 passing (100%)
- Triggering: 26/26 passing (100%)
- Performance: 2/2 passing (100%)

Plugin now focused on single responsibility: UI5 best practices and coding standards.
For TypeScript conversion, users should install ui5-typescript-conversion plugin.
For Integration Cards, users should use ui5 MCP plugin.

* ci: Add dist directory to gitignore

* refactor: Adjust SKILL with the minimal required information and address code review comments

* docs: Refactor i18n scenarios recommendation

* docs: Revise CSP policy

* fix: Prettier formatting & styling

* refactor: Remove redundant information

* docs: Update README.md

* refactor: Consolidate ui5-guidelines into plugins/ui5/

* refactor: Cleanup

* docs: Adjust Readme

* revert: Plugin.json to initial state

* fix: Resolve merge conflicts
Copy link
Copy Markdown
Member

@d3xter666 d3xter666 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please check @flovogt 's comments
From my side, looks good!

Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants